/*
 * Wazuh databaseFeedManager
 * Copyright (C) 2015, Wazuh Inc.
 * February 28, 2024.
 *
 * This program is free software; you can redistribute it
 * and/or modify it under the terms of the GNU General Public
 * License (version 2) as published by the FSF - Free Software
 * Foundation.
 */

#ifndef _MOCK_GLOBAL_DATA_HPP
#define _MOCK_GLOBAL_DATA_HPP

#include "gmock/gmock.h"
#include "gtest/gtest.h"

#include "globalData.hpp"
#include "singleton.hpp"

#include "json.hpp"

/**
 * @brief Mock GlobalData class.
 *
 */
class MockGlobalData : public Singleton<MockGlobalData>
{
public:
    MockGlobalData() = default;

    virtual ~MockGlobalData() = default;

    /**
     * @brief Mock method
     */
    MOCK_METHOD(void, vendorMaps, (const nlohmann::json& vendor));

    /**
     * @brief Mock method
     */
    MOCK_METHOD(void, osCpeMaps, (const nlohmann::json& osCpe));

    /**
     * @brief Mock method
     *
     * @return nlohmann::json
     */
    MOCK_METHOD(nlohmann::json, vendorMaps, (), (const));

    /**
     * @brief Mock method
     *
     * @return nlohmann::json
     */
    MOCK_METHOD(nlohmann::json, osCpeMaps, (), (const));
};

#endif // _MOCK_GLOBAL_DATA_HPP
